using System;
using Sinacor.Servico.Bovespa.ResumoFinanceiro.BusinessEntity;
using   Sinacor.Servico.Bovespa.ResumoFinanceiro.Service.DataContract.Response;
using System.Collections.Generic;
using System.ComponentModel;
using Sinacor.Servico.Bovespa.ResumoFinanceiro.Service;
      
namespace Sinacor.Servico.Bovespa.ResumoFinanceiro.Service.ServiceImplementation.Translator
{
	public static class TranslateResumoFinanceiro
	{
		public static DataContract.Response.ResumoFinanceiroResponse ToResumoFinanceiroResponse(BusinessEntity.ResumoFinanceiro from)
		{
			Sinacor.Servico.Bovespa.ResumoFinanceiro.Service.DataContract.Response.ResumoFinanceiroResponse to = new Sinacor.Servico.Bovespa.ResumoFinanceiro.Service.DataContract.Response.ResumoFinanceiroResponse();
			to.DataPregao = from.DataPregao;
			to.DataNegocio = from.DataNegocio;
			to.CodigoBolsaFaturamento = from.CodigoBolsaFaturamento;
			to.CodigoCliente = from.CodigoCliente.HasValue ? from.CodigoCliente.Value : 0 ;
			to.ApelidoCliente = from.ApelidoCliente;
            to.TipoCliente = (Sinacor.Servico.Bovespa.ResumoFinanceiro.Service.DataContract.Enum.TipoCliente)from.TipoCliente;
			to.TipoNegocio = from.TipoNegocio;
			to.DataMovimento = from.DataMovimento;
			to.CodigoClienteBroker = from.CodigoClienteBroker;
			to.CodigoClienteLiquidacaoFinanceira = from.CodigoClienteLiquidacaoFinanceira;
			to.VolumeNegocios = from.VolumeNegocios;
			to.ValorCorretagem = from.ValorCorretagem;
            /// Data:30/01/2008 13:40
            /// Autor:Dmilanez.7comm
            /// Obs:
            /// Removido por n ser utilizado
            ///to.ValorRepasseCorretagemCorrespondente = from.ValorRepasseCorretagemCorrespondente;
			to.ValorTaxaRegistroOperacoesDayTrade = from.ValorTaxaRegistroOperacoesDayTrade;
			to.ValorTaxaRegistroOperacoesCarteiraPropria = from.ValorTaxaRegistroOperacoesCarteiraPropria;
			to.ValorTaxaRegistroOperacoesFinais = from.ValorTaxaRegistroOperacoesFinais;
			to.ValorTaxaPTAN = from.ValorTaxaPTAN;
			to.ValorTaxaANA = from.ValorTaxaANA;
			to.ValorTaxaIOF = from.ValorTaxaIOF;
			to.ValorDescontoCorretagem = from.ValorDescontoCorretagem;
			to.ValorIRCorretagem = from.ValorIRCorretagem;
			to.ValorLiquidoNotaCorretagem = from.ValorLiquidoNotaCorretagem;
			to.ValorComissaoAssessorCliente = from.ValorComissaoAssessorCliente;
			to.ValorComissaoAgenteCliente = from.ValorComissaoAgenteCliente;
			to.ValorRepasseCorrespondente = from.ValorRepasseCorrespondente;
			to.VolumeVendasVista = from.VolumeVendasVista;
			to.VolumeComprasVista = from.VolumeComprasVista;
			to.VolumeVendasOpcao = from.VolumeVendasOpcao;
			to.VolumeComprasOpcao = from.VolumeComprasOpcao;
			to.VolumeOperacoesTermo = from.VolumeOperacoesTermo;
			to.CodigoGrupoContabilCliente = from.CodigoGrupoContabilCliente;
			to.ValorEmolumentosOperacoesDayTrade = from.ValorEmolumentosOperacoesDayTrade;
			to.ValorEmolumentosOperacoesCarteiraPropria = from.ValorEmolumentosOperacoesCarteiraPropria;
			to.ValorEmolumentosOperacoesFinais = from.ValorEmolumentosOperacoesFinais;
			to.ValorDescontoCorretagemCliente = from.ValorDescontoCorretagemCliente;
			to.ValorDescontoCorretagemBroker = from.ValorDescontoCorretagemBroker;
			to.ValorDescontoCorretagemFinanceiro = from.ValorDescontoCorretagemFinanceiro;
			to.ValorTotalCorretagem = from.ValorTotalCorretagem;
			to.ValorTotalTaxaRegistro = from.ValorTotalTaxaRegistro;
			to.ValorTotalEmolumentos = from.ValorTotalEmolumentos;
			to.IsCorrespondente = from.IsCorrespondente;
			to.NumeroNotaCorretagem = from.NumeroNotaCorretagem;
			to.ValorOperacoesDebentures = from.ValorOperacoesDebentures;
			to.ValorOperacoesTitulosPublicos = from.ValorOperacoesTitulosPublicos;
			to.IsOcorrencia = from.IsOcorrencia;
			to.CodigoUsuario = from.CodigoUsuario;
			to.ValorOperacoesFuturo = from.ValorOperacoesFuturo;
			to.ValorTaxaRegistroBovespa = from.ValorTaxaRegistroBovespa;
			to.ValorTaxaRegistroCBLC = from.ValorTaxaRegistroCBLC;
			to.ValorEmolumentosLiquidacaoBovespa = from.ValorEmolumentosLiquidacaoBovespa;
			to.ValorEmolumentosLiquidacaoCBLC = from.ValorEmolumentosLiquidacaoCBLC;
			to.ValorLiquidacaoBovespa = from.ValorLiquidacaoBovespa;
			to.ValorLiquidacaoCBLC = from.ValorLiquidacaoCBLC;
			to.IsNotaUnica = from.IsNotaUnica;
			to.ValorBaseCalculoIRRFDayTrade = from.ValorBaseCalculoIRRFDayTrade;
			to.ValorIRRF = from.ValorIRRF;
			to.ValorIRRFDespesa = from.ValorIRRFDespesa;
			to.ValorTaxaRegistroBovespaOperacoesHomeBroker = from.ValorTaxaRegistroBovespaOperacoesHomeBroker;
			to.ValorTaxaRegistroCBLCOperacoesHomeBroker = from.ValorTaxaRegistroCBLCOperacoesHomeBroker;
			to.ValorEmolumentosOperacoesHomeBroker = from.ValorEmolumentosOperacoesHomeBroker;
			to.ValorTaxaLiquidacaoOperacoesHomeBroker = from.ValorTaxaLiquidacaoOperacoesHomeBroker;
			to.ValorCorretagemOperacoesHomeBroker = from.ValorCorretagemOperacoesHomeBroker;
			to.ValorTotalNegociosHomeBroker = from.ValorTotalNegociosHomeBroker;
			to.ValorTotalVendaMercadoFuturo = from.ValorTotalVendaMercadoFuturo;
			to.ValorTotalCompraMercadoFuturo = from.ValorTotalCompraMercadoFuturo;
			to.ValorAjusteDia = from.ValorAjusteDia;
			to.ValorISS = from.ValorISS;
			to.CodigoAssessor = from.CodigoAssessor;
			to.CodigoMunicipio = from.CodigoMunicipio;
			to.NomeTerminalEfetuouCalculoFinanceiro = from.NomeTerminalEfetuouCalculoFinanceiro;
			to.IndicadorOrigemCalculoFinanceiro = from.IndicadorOrigemCalculoFinanceiro;
			to.DataSistemaMomentoCalculo = from.DataSistemaMomentoCalculo;
			to.ValorCorretagemOriginal = from.ValorCorretagemOriginal;
			to.ValorCorretagemTotalOriginal = from.ValorCorretagemTotalOriginal;
			to.IndicadorISS = from.IndicadorISS;
			to.IndicadorIRDayTradeLiquidoNota = from.IndicadorIRDayTradeLiquidoNota;
			to.ValorVendaDayTradeOpcoes = from.ValorVendaDayTradeOpcoes;
			to.ValorCompraDayTradeOpcoes = from.ValorCompraDayTradeOpcoes;
			to.ValorVendaDayTradeVista = from.ValorVendaDayTradeVista;
			to.ValorCompraDayTradeVista = from.ValorCompraDayTradeVista;
			to.ValorIRSobreOperacores = from.ValorIRSobreOperacores;
			to.ValorBaseCalculoIRSobreOperacoes = from.ValorBaseCalculoIRSobreOperacoes;
			to.ValorBaseCalculoCorretagemHomeBroker = from.ValorBaseCalculoCorretagemHomeBroker;
			to.IsSomenteContaSelecionada = from.IsSomenteContaSelecionada;
			to.IsCorretagemISSReverso = from.IsCorretagemISSReverso;
			to.PrazoLiquidacao = from.PrazoLiquidacao;
			to.PorcentagemDescontoCadastrado = from.PorcentagemDescontoCadastrado;
			to.PorcentagemDescontoAplicado = from.PorcentagemDescontoAplicado;
			to.IsContaInvestimento = from.IsContaInvestimento;
			to.ValorAjustePosicao = from.ValorAjustePosicao;
			to.ValorAjusteDayTrade = from.ValorAjusteDayTrade;
			to.NomeCliente = from.NomeCliente;
			
			return to;
		}


		public static List<DataContract.Response.ResumoFinanceiroResponse> ToResumoFinanceiroResponseList(List<BusinessEntity.ResumoFinanceiro> from)
		{
			List<DataContract.Response.ResumoFinanceiroResponse> to = new List<DataContract.Response.ResumoFinanceiroResponse>();

			foreach (BusinessEntity.ResumoFinanceiro fromItem in from)
			{
				DataContract.Response.ResumoFinanceiroResponse response = new DataContract.Response.ResumoFinanceiroResponse();
				response = Translator.TranslateResumoFinanceiro.ToResumoFinanceiroResponse(fromItem);
				to.Add(response);
			}

			return to;
		}
	}
}

